package frontend.parser.node.expnode;

import frontend.lexer.token.Token;
import frontend.parser.node.Node;
import frontend.parser.node.TokenNode;

public class LVal extends Node {
    // 左值表达式   LVal → Ident {'[' Exp ']'} // c k
    private TokenNode identTokenNode;
    private int dimension = 0;
    private Exp[] dimOffsetExp = new Exp[2];
    public void addIdentTokenNode(TokenNode identTokenNode) {
        super.add(identTokenNode);
        this.identTokenNode = identTokenNode;
    }
    public void addDimIndexExp(Exp indexExp) {
        super.add(indexExp);
        if (dimension < 2) {
            dimOffsetExp[dimension++] = indexExp;
        }
    }

    public TokenNode getIdentTokenNode() {
        return identTokenNode;
    }

    public int getDimension() {
        return dimension;
    }

    public Exp[] getDimOffsetExp() {
        return dimOffsetExp;
    }
    public String getIdentName() {
        return identTokenNode.getContent();
    }
    public Token getIdentToken() {
        return identTokenNode.getToken();
    }

}
